home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Controls / Visual Basic Controls.iso / vbcontrol / intmail2 / popmain.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1999-07-27  |  6.7 KB  |  264 lines

  1. unit popmain;
  2.  
  3. {$I msdef.inc}
  4.  
  5. interface
  6.  
  7. uses
  8.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  9.   Buttons, ComCtrls, ExtCtrls,
  10. {$IFDEF VER120}
  11.   ImgList,
  12. {$ENDIF}
  13.   msmsg,  msMsgCls, popsu,
  14.   IniFiles, Menus, StdCtrls, Mssocket, Mspop;
  15.  
  16. type
  17.   TPopForm = class(TForm)
  18.     Panel1: TPanel;
  19.     Panel2: TPanel;
  20.     StatusBar1: TStatusBar;
  21.     ListView1: TListView;
  22.     RetrieveButton: TSpeedButton;
  23.     CancelButton: TSpeedButton;
  24.     ImageList1: TImageList;
  25.     SetupButton: TSpeedButton;
  26.     ExitButton: TSpeedButton;
  27.     ProgressBar1: TProgressBar;
  28.     MainMenu1: TMainMenu;
  29.     File1: TMenuItem;
  30.     Retrieve1: TMenuItem;
  31.     Cancel1: TMenuItem;
  32.     Exit1: TMenuItem;
  33.     Setup1: TMenuItem;
  34.     Help1: TMenuItem;
  35.     About1: TMenuItem;
  36.     Bevel1: TBevel;
  37.     msPOPClient1: TmsPOPClient;
  38.     msMessage1: TmsMessage;
  39.     procedure msPOP1Cancel(Sender: TObject);
  40.     procedure msPOP1Open(Sender: TObject);
  41.     procedure ExitButtonClick(Sender: TObject);
  42.     procedure ListView1DblClick(Sender: TObject);
  43.     procedure SetupButtonClick(Sender: TObject);
  44.     procedure FormCreate(Sender: TObject);
  45.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  46.     procedure About1Click(Sender: TObject);
  47.     procedure FormResize(Sender: TObject);
  48.     procedure RetrieveButtonClick(Sender: TObject);
  49.     procedure msPOPClient1Connecting(Sender: TObject);
  50.     procedure msPOPClient1Connected(Sender: TObject);
  51.     procedure msPOPClient1Disconnected(Sender: TObject);
  52.     procedure msPOPClient1RetrievingMessage(Sender: TObject);
  53.     procedure CancelButtonClick(Sender: TObject);
  54.     procedure msPOPClient1TransferProgress(Sender: TObject; Perc,
  55.       ByteCount, LineCount: Longint);
  56.   private
  57.     { Private declarations }
  58.     Item : TListItem;
  59.     IniName : string;
  60.     procedure EnableControls;
  61.     procedure DisableControls;
  62.   public
  63.     { Public declarations }
  64.   end;
  65.  
  66. var
  67.   PopForm: TPopForm;
  68.  
  69. implementation
  70.  
  71. uses popview, msabout;
  72.  
  73. {$R *.DFM}
  74.  
  75. procedure TPopForm.EnableControls;
  76. begin
  77.   RetrieveButton.Enabled:=true;
  78.   CancelButton.Enabled:=false;
  79.   SetupButton.Enabled:=true;
  80.   ExitButton.Enabled:=true;
  81.   Retrieve1.Enabled:=true;
  82.   Cancel1.Enabled:=false;
  83.   Exit1.Enabled:=true;
  84.   Setup1.Enabled:=true;
  85.   Help1.Enabled:=true;
  86. end;
  87.  
  88. procedure TPopForm.DisableControls;
  89. begin
  90.   RetrieveButton.Enabled:=false;
  91.   CancelButton.Enabled:=true;
  92.   SetupButton.Enabled:=false;
  93.   ExitButton.Enabled:=false;
  94.   Retrieve1.Enabled:=false;
  95.   Cancel1.Enabled:=true;
  96.   Exit1.Enabled:=false;
  97.   Setup1.Enabled:=false;
  98.   Help1.Enabled:=false;
  99. end;
  100.  
  101. procedure TPopForm.msPOP1Cancel(Sender: TObject);
  102. begin
  103.   StatusBar1.Panels[0].Text:='Canceled';
  104. end;
  105.  
  106. procedure TPopForm.msPOP1Open(Sender: TObject);
  107. begin
  108.   StatusBar1.Panels[0].Text:='Opening connection';
  109. end;
  110.  
  111. procedure TPopForm.ExitButtonClick(Sender: TObject);
  112. begin
  113.   Close;
  114. end;
  115.  
  116. procedure TPopForm.ListView1DblClick(Sender: TObject);
  117. var
  118.   TempMessage : TmsMessage;
  119. begin
  120.   TempMessage:=TmsMessage.Create(Self);
  121.   try
  122.     if ListView1.Selected<>nil then
  123.     begin
  124.       MsgViewDlg:=TMsgViewDlg.Create(Self);
  125.       TempMessage.LoadFromStream(ListView1.Selected.Data);
  126.       MsgViewDlg.MailMessage:=TempMessage;
  127.       MsgViewDlg.ShowModal;
  128.       MsgViewDlg.Free;
  129.     end;
  130.   finally
  131.     TempMessage.Free;
  132.   end;
  133. end;
  134.  
  135. procedure TPopForm.SetupButtonClick(Sender: TObject);
  136. begin
  137.   with TSetupDlg.Create(Self) do
  138.   try
  139.     ServerEdit.Text:=msPOPClient1.Host;
  140.     UserNameEdit.Text:=msPOPClient1.UserName;
  141.     PasswordEdit.Text:=msPOPClient1.Password;
  142.     LogFileNameEdit.Text:=msPOPClient1.LogFileName;
  143.     if ShowModal=mrOk then
  144.     begin
  145.       msPOPClient1.Host:=ServerEdit.Text;
  146.       msPOPClient1.UserName:=UserNameEdit.Text;
  147.       msPOPClient1.Password:=PasswordEdit.Text;
  148.       msPOPClient1.LogFileName:=LogFileNameEdit.Text;
  149.     end;
  150.   finally
  151.     free;
  152.   end;
  153. end;
  154.  
  155. procedure TPopForm.FormCreate(Sender: TObject);
  156. begin
  157.   IniName:=ChangeFileExt(Application.ExeName,'.ini');
  158.   with TIniFile.Create(IniName) do
  159.   try
  160.     msPOPClient1.Host:=ReadString('Setup','Server','');
  161.     msPOPClient1.UserName:=ReadString('Setup','User Name','');
  162.     msPOPClient1.Password:=ReadString('Setup','Password','');
  163.     msPOPClient1.LogFileName:=ReadString('Setup','Log File','');
  164.   finally
  165.     free;
  166.   end;
  167. end;
  168.  
  169. procedure TPopForm.FormClose(Sender: TObject; var Action: TCloseAction);
  170. begin
  171.   with TIniFile.Create(IniName) do
  172.   try
  173.     WriteString('Setup','Server',msPOPClient1.Host);
  174.     WriteString('Setup','User Name',msPOPClient1.UserName);
  175.     WriteString('Setup','Password',msPOPClient1.Password);
  176.     WriteString('Setup','Log File',msPOPClient1.LogFileName);
  177.   finally
  178.     free;
  179.   end;
  180. end;
  181.  
  182. procedure TPopForm.About1Click(Sender: TObject);
  183. begin
  184.   with TAboutDlg.Create(Self) do
  185.   try
  186.     ProgramName.Caption:='TmsPOPClient Component Demo (1 of 2)';
  187.     ShowModal;
  188.   finally
  189.     Free;
  190.   end;
  191. end;
  192.  
  193. procedure TPopForm.FormResize(Sender: TObject);
  194. begin
  195.   Bevel1.Width:=Width;
  196. end;
  197.  
  198. procedure TPopForm.RetrieveButtonClick(Sender: TObject);
  199. var
  200.   i: Integer;
  201.   TempStream : TMemoryStream;
  202. begin
  203.   DisableControls;
  204.   ListView1.Items.Clear;
  205.   try
  206.     with msPOPClient1 do
  207.     begin
  208.       LogIn;
  209.       for i:= 0 to msPOPClient1.TotalMessages-1 do
  210.       begin
  211.         msPOPClient1.CurrentMessage:=i;
  212.         Retrieve;
  213.         TempStream:=TMemoryStream.Create;
  214.         MailMessage.SaveToStream(TempStream);
  215.         Item:=ListView1.Items.Add;
  216.         Item.Caption:=msPOPClient1.MailMessage.Subject;
  217.         if Item.Caption='' then Item.Caption:='No Subject';
  218.         Item.ImageIndex:=0;
  219.         Item.Data:=TempStream;
  220.         ProgressBar1.Position:=0;
  221.         Next;
  222.       end;
  223.       LogOut;
  224.     end;
  225.   finally
  226.     EnableControls;
  227.   end;
  228. end;
  229.  
  230. procedure TPopForm.msPOPClient1Connecting(Sender: TObject);
  231. begin
  232.   StatusBar1.Panels[0].Text:='Connecting to the server '+msPOPClient1.Host;
  233. end;
  234.  
  235. procedure TPopForm.msPOPClient1Connected(Sender: TObject);
  236. begin
  237.   StatusBar1.Panels[0].Text:='Connected';
  238. end;
  239.  
  240. procedure TPopForm.msPOPClient1Disconnected(Sender: TObject);
  241. begin
  242.   StatusBar1.Panels[0].Text:='Disconnected';
  243. end;
  244.  
  245. procedure TPopForm.msPOPClient1RetrievingMessage(Sender: TObject);
  246. begin
  247.   StatusBar1.Panels[0].Text:='Retrieving the message '+
  248.     IntToStr(msPOPClient1.CurrentMessage+1)+' of '+IntToStr(msPOPClient1.TotalMessages);
  249. end;
  250.  
  251. procedure TPopForm.CancelButtonClick(Sender: TObject);
  252. begin
  253.   msPOPClient1.Cancel;
  254.   StatusBar1.Panels[0].Text:='Operation has been canceled';
  255. end;
  256.  
  257. procedure TPopForm.msPOPClient1TransferProgress(Sender: TObject; Perc,
  258.   ByteCount, LineCount: Longint);
  259. begin
  260.   ProgressBar1.Position:=Perc;
  261. end;
  262.  
  263. end.
  264.